/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/


/*************************************************************************
 *\author: starlove
 *************************************************************************/
#ifndef __CC_PYTHON_IMPORT_O_DIRECTOR__
#define __CC_PYTHON_IMPORT_O_DIRECTOR__

#include <cocos2d.h>
#include <python_import_utils.hpp>

NS_CCPY_BEGIN
	class CPyDirector : public CPyClassBase
	{
	PYCLASS_DEF_INTERFACE(CPyDirector)
	public:
		CPyDirector();
		cocos2d::CCObject *getCCObject(){ return cocos2d::CCDirector::sharedDirector(); };
		PYCLASS_METHOD_DEF(CPyDirector, setViewport);
		PYCLASS_METHOD_DEF(CPyDirector, convertToGL);
		PYCLASS_METHOD_DEF(CPyDirector, convertToUI);
		PYCLASS_METHOD_DEF(CPyDirector, runWithScene);
		PYCLASS_METHOD_DEF(CPyDirector, pushScene);
		PYCLASS_METHOD_DEF(CPyDirector, popScene);
		PYCLASS_METHOD_DEF(CPyDirector, popToRootScene);
		PYCLASS_METHOD_DEF(CPyDirector, replaceScene);
		PYCLASS_METHOD_DEF(CPyDirector, drawScene);
		PYCLASS_METHOD_DEF(CPyDirector, purgeCachedData);
		PYCLASS_METHOD_DEF(CPyDirector, end);
		PYCLASS_METHOD_DEF(CPyDirector, pause);
		PYCLASS_METHOD_DEF(CPyDirector, resume);
		PYCLASS_METHOD_DEF(CPyDirector, setGLDefaultValues);
		PYCLASS_METHOD_DEF(CPyDirector, setAlphaBlending);
		PYCLASS_METHOD_DEF(CPyDirector, setDepthTest);
		//PYCLASS_METHOD_DEF(CPyDirector, stopAnimation);
		//PYCLASS_METHOD_DEF(CPyDirector, startAnimation);

		PYCLASS_METHOD_DEF(CPyDirector, getRunningScene);
		PYCLASS_METHOD_DEF(CPyDirector, getSecondsPerFrame);
		PYCLASS_METHOD_DEF(CPyDirector, isPaused);
		PYCLASS_METHOD_DEF(CPyDirector, getTotalFrames);
		PYCLASS_METHOD_DEF(CPyDirector, isSendCleanupToScene);
		PYCLASS_METHOD_DEF(CPyDirector, getWinSize);
		PYCLASS_METHOD_DEF(CPyDirector, getWinSizeInPixels);
		PYCLASS_METHOD_DEF(CPyDirector, getVisibleSize);
		PYCLASS_METHOD_DEF(CPyDirector, getVisibleOrigin);
		PYCLASS_METHOD_DEF(CPyDirector, getZEye);
		PYCLASS_METHOD_DEF(CPyDirector, getDeltaTime);

		PYCLASS_METHOD_DEF(CPyDirector, getAnimationInterval);
		PYCLASS_METHOD_DEF(CPyDirector, setAnimationInterval);
		PYCLASS_METHOD_DEF(CPyDirector, isDisplayStats);
		PYCLASS_METHOD_DEF(CPyDirector, setDisplayStats);
		PYCLASS_METHOD_DEF(CPyDirector, getOpenGLView);
		PYCLASS_METHOD_DEF(CPyDirector, setOpenGLView);
		PYCLASS_METHOD_DEF(CPyDirector, isNextDeltaTimeZero);
		PYCLASS_METHOD_DEF(CPyDirector, setNextDeltaTimeZero);
		PYCLASS_METHOD_DEF(CPyDirector, getNotificationNode);
		PYCLASS_METHOD_DEF(CPyDirector, setNotificationNode);
		PYCLASS_METHOD_DEF(CPyDirector, getDelegate);
		PYCLASS_METHOD_DEF(CPyDirector, setDelegate);
		PYCLASS_METHOD_DEF(CPyDirector, getProjection);
		PYCLASS_METHOD_DEF(CPyDirector, setProjection);
		PYCLASS_METHOD_DEF(CPyDirector, getContentScaleFactor);
		PYCLASS_METHOD_DEF(CPyDirector, setContentScaleFactor);
		PYCLASS_METHOD_DEF(CPyDirector, getScheduler);
		PYCLASS_METHOD_DEF(CPyDirector, setScheduler);
		PYCLASS_METHOD_DEF(CPyDirector, getActionManager);
		PYCLASS_METHOD_DEF(CPyDirector, setActionManager);
		PYCLASS_METHOD_DEF(CPyDirector, getTouchDispatcher);
		PYCLASS_METHOD_DEF(CPyDirector, setTouchDispatcher);
		PYCLASS_METHOD_DEF(CPyDirector, getKeypadDispatcher);
		PYCLASS_METHOD_DEF(CPyDirector, setKeypadDispatcher);
		PYCLASS_METHOD_DEF(CPyDirector, getAccelerometer);
		PYCLASS_METHOD_DEF(CPyDirector, setAccelerometer);

		PYCLASS_METHOD_DEF(CPyDirector, addStandardDelegate);
		PYCLASS_METHOD_DEF(CPyDirector, addTargetedDelegate);
		PYCLASS_METHOD_DEF(CPyDirector, removeDelegate);
	private:
	};

NS_CCPY_END

#endif